<?php

namespace App\Http\Controllers\login;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller
{

    /**
     * 登录页面
     */
    public function loginPage(){
        return view('login/login');

    }

    /**
     * 实现登录
     */
    public function doLogin(Request $request){
        $params = $this->validate($request, [
            'username' => 'required',
            'password' => 'required',
        ],[
            'username.required'=>'用户名称为空',
            'password.required'=>'密码为空'
        ]);

        $bool = Auth::attempt($params);
        //如果登录成功
        if ($bool) {
            //判断当前登录用户是否是超级管理，如果是超级管理员给一个标识符，用来标识超管不需要校验权限
            if (auth()->user()->username == config('rbac.super')) {
                session(['admin.auths' => true]);
            } else {
                $user = auth()->user();
                $role = $user->role;
                //能不能获取到角色所对应的权限呢？       能
                $node = $role->nodes->pluck('route_name', 'id')->toArray();

                //使用session记录当前用户所对应的权限
                session(['admin.auths' => $node]);
            }
            //跳转到后台首页
            return redirect('index');
        }
        //如果登录失败返回登录页面，并且做出提示
        return redirect('login')->withErrors('用户名或者密码错误');
    }


    /**
     * user高传想
     * get
     * 退出登录
     */
    public function logOut(){
        Auth::logout();
        return redirect(route('login'));

    }

}
